---
sidebar_position: 1
---

# Установка

Процесс установки сводится к копированию исполняемого файла в `bin` директорию пользователя  
или в системную директорию `/usr/bin`.

Выберите метод установки, который вам подходит:

- [Установка deb-пакета](#установка-deb-пакета)
- [Установка в домашнюю директорию пользователя](#установка-в-домашнюю-директорию-пользователя)
- [Ручная установка](#ручная-установка)

## Установка deb-пакета

> Только для debian-подобных операционных систем: debian, ubuntu, linux mint и т. д.

:::info
- При установке deb-пакета вам сразу будет доступно автоматическое завершение команд (auto-complete) для bash и zsh.  
- Приложение будет обновляться вместе с пакетами системы через пакетный менеджер apt.
:::

---

### Удаление старой версии

Вам нужно удалить предыдущую версию, если у вас прежде dl был установлен в домашнюю директорию пользователя через
установочный bash скрипт.

```bash
cd ~ && rm -rf .local/bin/dl .config/dl
```

### Настройка репозитория

Перед первой установкой DL на новый компьютер необходимо настроить репозиторий dl. После этого вы можете установить и обновить dl из репозитория.

1. Обновите индекс пакетов apt и установите пакеты, чтобы разрешить apt использовать репозиторий через HTTPS:

    ```bash
    sudo apt update
    sudo apt install ca-certificates gnupg
    ```
2. Добавьте официальный GPG ключ:

    ```bash
    sudo install -m 0755 -d /etc/apt/keyrings
    wget -qO - https://apt.fury.io/local-deploy/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/dl.gpg > /dev/null
    ```
3. Используйте следующую команду для настройки репозитория:

    ```bash
    echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/dl.gpg] https://apt.fury.io/local-deploy/ /" | sudo tee /etc/apt/sources.list.d/dl.list > /dev/null
    ```
4. Обновите индекс пакетов apt и установите последнюю версию dl:

    ```bash
    sudo apt update
    sudo apt install dl
    ```

Запустите команду `dl` для проверки корректности установки. Если возникает ошибка, перезапустите терминал.

### Расположение файлов

- Исполняемый файл: `/usr/bin/dl`
- Файлы docker-compose: `/etc/dl/config-files/`
- Конфигурационный файл приложения: `~/.config/dl/`

## Установка в домашнюю директорию пользователя

> Для Linux и MacOS

:::note
Этот способ установки проще и не требует root-доступа, но ограничивает функциональность приложения.
:::

---

Чтобы установить DL, просто вставьте код в терминал и запустите:

```bash
curl -s https://raw.githubusercontent.com/local-deploy/dl/master/install_dl.sh | bash
```

Скрипт проверит зависимости, скачает и установит последний релиз.

Исполняемый файл `dl` будет записан в домашнюю директорию пользователя по пути `~/.local/bin/dl`. Если директории не
существует, она будет создана.  
При первом запуске сгенерируются конфигурационные файлы docker-compose в директории `~/.config/dl/config-files/`.

:::info
При установке проверяется глобальная переменная `$PATH`, если в ней не будет указана директория `~/.local/bin/`, скрипт
добавит в файл `.bashrc` (или `.zshrc`) строку `PATH="$PATH:$HOME/.local/bin"`
:::

Запустите команду `dl` для проверки корректности установки. Если возникает ошибка, перезапустите терминал.

### Расположение файлов

- Исполняемый файл: `~/.local/bin/dl`
- Конфигурационный файл приложения: `~/.config/dl/`
- Файлы docker-compose: `~/.config/dl/config-files/`

## Ручная установка

---

Скачайте и распакуйте последний релиз (архив `tar.gz`) по
ссылке [https://github.com/local-deploy/dl/releases](https://github.com/local-deploy/dl/releases)

Например, для MacOS, arm архитектуры:

```bash
curl -fsSL "https://github.com/local-deploy/dl/releases/download/1.0.0/dl-1.0.0-darwin-arm64.tar.gz" -o "dl.tar.gz"
tar -xzf dl.tar.gz
```

Архив содержит бинарный файл `dl`. Скопируйте его в папку домашней директории, которая содержит исполняемые файлы,
например, `~/.local/bin` или `~/bin`.

```bash
# linux
mv dl $HOME/.local/bin/dl
chmod +x "$HOME/.local/bin/dl"
```

Запустите команду `dl` для проверки корректности установки. Если возникает ошибка, перезапустите терминал.
